#!/usr/bin/env node
//2. 操作标准输入/输出流

const stdin = process.stdin,
      stdout = process.stdout;

//stdin.pipe(stdout);

//通过 pipe 方法将标准输入流接到标准输出流上，消费标准输入流中的数据
//用 for 循环在标准输出流上输出 a-z 26 个字母
//charCodeAt是字符串第一个字符的ascall码
for(let c='a'.charCodeAt(0);c<='z'.charCodeAt(0);c++){
  stdout.write(String.fromCharCode(c));
}

//在标准输入流中 push 一些字符串
stdin.push('slx\n');
stdin.push('ss\n');

//通过 data 事件消费标准输入流中的数据
//将标准输入流的字符转成大写，然后输出到标准输出流中
stdin.on('data',(data)=>{
  //stdout.write(data);
  //console.log(data);
  //console.log(typeof data); //object
  stdout.write(data.toString('utf8').toUpperCase());
})
stdin.on('end',()=>{
  process.exit();
})
//交互式就是输入hello打印出HELLO
//用流的方式运行程序（命令如下），观察程序运行的结果
//cat 01-std-io.js | ./01-std-io.js
//把01的代码输入到此程序中触发了data事件打印出大写的01文件

